Aspect Refinement
نویسندگان
چکیده
Stepwise refinement (SWR) is fundamental to software engineering. As aspect-oriented programming (AOP) gains momentum in software development, aspects should be subject to SWR as well. In this paper, we introduce the notion of aspect refinement that unifies AOP and SWR. To reflect this unification to programming language level, we present an implementation technique for refining aspects based on mixin composition. Specifically, we propose a set of concrete mechanisms for refining all kinds of structural elements of aspects in a uniform way (methods, pointcuts, advice). To underpin our proposal, we contribute a formal syntax and semantics specification as well as a fully functional compiler on top of AspectJ. We apply our approach to a non-trivial case study and derive several programming guidelines.
منابع مشابه
Aspect Refinement and Bounded Quantification in Incremental Designs
This article investigates aspects in the context of the incremental software development, i.e. software product lines. Specifically, we propose the integration of aspects into AHEAD, an architectural model for feature-based product line development. We introduce the notion of aspect refinement based on Aspectual Mixin Layers, a novel technique for implementing features. Aspect refinement enable...
متن کاملAspect Refinement in Software Product Lines
This article investigates aspects in the context of the step-wise development of software product lines. Specifically, we propose the integration of aspects into AHEAD, an architectural model for feature-based product line development. We introduce the notion of aspect refinement based on Aspectual Mixin Layers, a technique for implementing features. Aspect refinement enables a programmer to ev...
متن کاملAspects and Data Refinement
We give an introduction to aspect-oriented programming from the viewpoint of data refinement. Some data refinements are conveniently expressed via aspects. Unlike traditional programming language features for data refinement, aspects conceptually transform run-time events, not compile-time programs.
متن کاملRefining Feature Driven Development - A methodology for early aspects
This position paper focuses on refining an agile processes approach named FDD to make it more aspect-oriented, hence a natural candidate for early aspects. We show that only a slight refinement is needed to adapt FDD to aspect-oriented development. Within the refinement, all requirements, be they concerns (architectural, non-functional and functional) or properties or rules, are described by us...
متن کاملMixin-Based Aspect Inheritance
Introducing mixin-based inheritance to AOP improves the capabilities of aspects to implement incremental designs. Since it enhances the inheritance mechanism with more flexibility, it is a key technology to reuse, compose, and evolve aspects in a step-wise manner over several development stages (step-wise aspect refinement). The introduction of mixin capabilities to aspects leads to the unifica...
متن کاملSeparation of Concerns through Stratified Architectures
Aspect-oriented programming essentially offers a way of enhancing the separation of concerns in software development. However, one of the most fundamental dimensions of concern, refinement, is not addressed in existing aspect-oriented approaches, despite the fact that much of the perceived "tangling" between software components comes from low level component interactions created by refining hig...
متن کامل